﻿using System;
using System.Data;
using System.Text;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GC2.Bussines;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Admin;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;

public partial class Informes_VentasPorVendedor : GenericPage
{
    #region Propiedades
    Usuarios usuario = new Usuarios();
    Ventas ventaD = new Ventas();
    Ventas ventaH = new Ventas();    
    List<Ventas> listaVentas = new List<Ventas>();
    private ExceptionConstructor exNew = new ExceptionConstructor();
    #endregion

    #region Controles

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            if (!this.IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                DateTime dHoy = DateTime.Now.Date;
                FechaH.SetFecha(dHoy);
                string sFecha = SetearFecha();
                FechaD.SetFecha(Convert.ToDateTime(sFecha));
                lblAccion.Text = "Buscar Ventas";
                CargarComboVendedores();
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region btnBuscar_Click
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        lblAccion.Text = "";
        BMVentas bmVentas = new BMVentas(Connection);
        listaVentas = new List<Ventas>();
       
        try
        {

            if (FechaD.GetFecha() != FechaD.FechaNula)
            {
                ventaD.Fecha = FechaD.GetFecha();
            }
            else
            {
                ventaD.Fecha = FechaD.FechaNula;
            }
            if (FechaH.GetFecha() != FechaH.FechaNula)
            {
                ventaH.Fecha = FechaH.GetFecha();
            }
            else
            {
                ventaH.Fecha = FechaD.FechaNula;
            }
            ventaD.Id_Estado = 1;

            // Asigno vendedor para la busqueda
            ventaD.IdVendedor = Convert.ToInt16(cboVendedores.SelectedItem.Value);

            listaVentas = bmVentas.BMVentasSearch(ventaD, ventaH);
            
            Session["listaVentas"] = listaVentas;
           

            CargarGrilla();


        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region btnCancelar_Click
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Seguridad/Default.aspx", false);
    }
    #endregion

    #region gvVentas_PageIndexChanging
    protected void gvVentas_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        try
        {
            gvVentas.PageIndex = e.NewPageIndex;
            CargarGrilla();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvVentas_SelectedIndexChanged
    protected void gvVentas_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {

            Ventas venta = new Ventas();
            venta.Id_Ventas = Convert.ToInt64(gvVentas.SelectedDataKey.Value);

            StringBuilder sb = new StringBuilder();
            sb.Append("Ventas.aspx?Id_Ventas=");
            sb.Append(venta.Id_Ventas.ToString());
            sb.Append("&Accion=3");

            Response.Redirect(sb.ToString(), false);
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region btnInforme_Click
    protected void btnInforme_Click(object sender, EventArgs e)
    {
        try
        {
            if (Session["listaVentas"] != null)
            {
                List<Ventas> listaVentas = (List<Ventas>)Session["listaVentas"];
                if (listaVentas.Count > 0)
                {
                    Session["pFechaD"] = FechaD.GetFecha();
                    Session["pFechaH"] = FechaH.GetFecha();
                    Session["iReporte"] = 1;

                    registrarScript();
                }
                else
                {
                    lblAccion.Text = "No hay datos para generar Informe";
                }
            }
            else
            {
                lblAccion.Text = "No hay datos para generar Informe";
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #endregion

    #region Métodos

    #region CargarComboVendedores
    private void CargarComboVendedores()
    {
        try
        {

            List<Empleados> listaEmpleados = new List<Empleados>();
            BMEmpleados bmEmpleados = new BMEmpleados(Connection);

            listaEmpleados = bmEmpleados.BMEmpleadosGetAll();
            int index = 0;
            foreach (Empleados empleado in listaEmpleados)
            {
                if (empleado.Tarea == "Vendedor" || empleado.Tarea == "VENDEDOR")
                {
                    ListItem item = new ListItem();
                    item.Value = empleado.Id_Empleado.ToString();
                    item.Text = empleado.Nombre;
                    cboVendedores.Items.Add(item);
                    index++;
                }
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region CargarGrilla
    private void CargarGrilla()
    {
        try
        {
            listaVentas = (List<Ventas>)Session["listaVentas"];
            gvVentas.DataSource = listaVentas;
            gvVentas.DataBind();
            Decimal dTotal = 0;
            foreach (Ventas venta in listaVentas)
            {
                dTotal += venta.Total;
            }
            txtTotal.Text = dTotal.ToString();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region registrarScript
    protected void registrarScript()
    {
        // dispararPopUp(hacePostBack)
        StringBuilder scriptSession = new StringBuilder("<script language='javascript' type='text/javascript'>");
        scriptSession.Append("function mostrarReporte()");
        scriptSession.Append("{");
        scriptSession.Append("var stringURL = '../Informes/RptVentasView.aspx';");
        scriptSession.Append("var opciones='toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes';");
        scriptSession.Append("var newWin = window.open(stringURL, 'PopUp" + DateTime.Now.Ticks.ToString() + "', opciones);");
        scriptSession.Append("}");
        scriptSession.Append("mostrarReporte();");
        scriptSession.Append("</script>");

        Page.ClientScript.RegisterStartupScript(this.GetType(), "Reporte" + Session["iReporte"].ToString(), scriptSession.ToString());
    }
    #endregion

    #endregion
}
